{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "source": [
    "import os, sys\n",
    "import pickle\n",
    "\n",
    "sys.path.append('../')"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "source": [
    "def load_freq_rank_list(lang):\n",
    "    wordvec_file = wordvec_file_template.format(lang)\n",
    "    freq_rank = {}\n",
    "    try:\n",
    "        with open(f'dumped/word_freqrank_{lang}.txt', 'rb') as f:\n",
    "            freq_rank = pickle.load(f)\n",
    "        return freq_rank\n",
    "    except Exception:\n",
    "        pass\n",
    "\n",
    "\n",
    "    with open(wordvec_file, 'r') as f:\n",
    "        n, dim  = next(f).split()\n",
    "        for i, line in enumerate(f):\n",
    "            word = line.split(' ')[0]\n",
    "            freq_rank[word] = i+1\n",
    "            if  (i + 1) % 100000 == 0:\n",
    "                print(\"Scanned\", i)\n",
    "\n",
    "    with open(f'dumped/word_freqrank_{lang}.txt', 'wb') as f:\n",
    "        pickle.dump(freq_rank, f)\n",
    "    \n",
    "    return freq_rank"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "source": [
    "os.chdir('..')"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "source": [
    "dict_file_template = '../pivot_based_zhde/{}-{}{}.txt'\n",
    "wordvec_file_template = 'data/wiki.{}.vec'\n",
    "src = 'zh'\n",
    "trg = 'de'\n",
    "train_valid = '.pivotgen'\n",
    "\n",
    "dict_file = dict_file_template.format(src, trg, train_valid)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "source": [
    "src_rank = load_freq_rank_list(src)\n",
    "trg_rank = load_freq_rank_list(trg)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Scanned 99999\n",
      "Scanned 199999\n",
      "Scanned 299999\n",
      "Scanned 99999\n",
      "Scanned 199999\n",
      "Scanned 299999\n",
      "Scanned 399999\n",
      "Scanned 499999\n",
      "Scanned 599999\n",
      "Scanned 699999\n",
      "Scanned 799999\n",
      "Scanned 899999\n",
      "Scanned 999999\n",
      "Scanned 1099999\n",
      "Scanned 1199999\n",
      "Scanned 1299999\n",
      "Scanned 1399999\n",
      "Scanned 1499999\n",
      "Scanned 1599999\n",
      "Scanned 1699999\n",
      "Scanned 1799999\n",
      "Scanned 1899999\n",
      "Scanned 1999999\n",
      "Scanned 2099999\n",
      "Scanned 2199999\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "source": [
    "src_dictrk = set()\n",
    "trg_dictrk = set()\n",
    "\n",
    "with open(dict_file, 'r') as f:\n",
    "    for line in f:\n",
    "        srcw , trgw = line.split()\n",
    "        if srcw == trgw:\n",
    "            continue\n",
    "        if srcw in src_rank:\n",
    "            src_dictrk.add(src_rank[srcw])\n",
    "        \n",
    "        if trgw in trg_rank:\n",
    "            trg_dictrk.add(trg_rank[trgw])"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "source": [
    "print(dict_file, os.getcwd())"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "../pivot_based_zhde/zh-de.pivot.txt /home/changfu/cuwtr\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "source": [
    "query_freq_list = pickle.load(open('../dumped/freqrank.txt', 'rb'))"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "source": [
    "len(query_freq_list)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "21473"
      ]
     },
     "metadata": {},
     "execution_count": 5
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "source": [
    "import seaborn as sns, pandas as pd, numpy as np"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "source": [
    "sns.lineplot(x=range(0, len(src_dictrk)), y=sorted(list(src_dictrk)), palette=\"tab10\", linewidth=2.5)\n",
    "sns.lineplot(x=range(0, len(trg_dictrk)), y=sorted(list(trg_dictrk)), palette=\"tab10\", linewidth=2.5)\n"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "metadata": {},
     "execution_count": 27
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "source": [
    "# count trg\n",
    "valid_file = open(os.path.join(os.getcwd(), f'../data/crosslingual/dictionaries/en-{lang}.5000-6500.txt'))\n",
    "query_freq_list = []\n",
    "visited = set()\n",
    "for line in valid_file:\n",
    "    src, trg = line.split()\n",
    "    if trg not in visited and trg in freq_tot_rank:\n",
    "        query_freq_list.append(freq_tot_rank[trg])\n",
    "        visited.add(src)\n",
    "# pddat = pd.DataFrame(np.array(query_freq_list).reshape(-1, 1), columns=['freq_rk'])\n",
    "sns.lineplot(x=range(0, len(query_freq_list)), y=sorted(query_freq_list), palette=\"tab10\", linewidth=2.5)\n",
    "print(len([v for v in query_freq_list if v <= 5000]))\n",
    "kalio = [(v+1)/(i+1) for i,v in enumerate(query_freq_list)]\n",
    "print(len(kalio)/sum(kalio))"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "588\n",
      "0.020445436659033266\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "source": [
    "l = [2, 1, 3, 4]\n",
    "sorted(l)\n"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "[1, 2, 3, 4]"
      ]
     },
     "metadata": {},
     "execution_count": 7
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "source": [
    "# count src\n",
    "valid_file = open(os.path.join(os.getcwd(), f'../data/crosslingual/dictionaries/{lang}-en.5000-6500.txt'))\n",
    "query_freq_list = []\n",
    "visited = set()\n",
    "for line in valid_file:\n",
    "    [src, trg] = line.strip().split()\n",
    "    if src not in visited:\n",
    "        query_freq_list.append(freq_tot_rank[src])\n",
    "        visited.add(src)\n",
    "# pddat = pd.DataFrame(np.array(query_freq_list).reshape(-1, 1), columns=['freq_rk'])\n",
    "sns.lineplot(x=range(len(query_freq_list)), y=query_freq_list, palette=\"tab10\", linewidth=2.5)\n",
    "print(len([v for v in query_freq_list if v < 5000]))\n",
    "kalio = [(v+1)/(i+5000) for i,v in enumerate(query_freq_list)]\n",
    "print(len(kalio)/sum(kalio))"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "0\n",
      "0.8226450587223891\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "source": [
    "valid_file = open(os.path.join(os.getcwd(), '../data/crosslingual/dictionaries/vi-en.txt'))\n",
    "query_freq_list = []\n",
    "visited = set()\n",
    "most_freq_dict = {}\n",
    "for line in valid_file:\n",
    "    src, trg = line.split()\n",
    "    # query_freq_list.append(freq_rank[src] if src in freq_rank else -1)\n",
    "    # query_freq_list.append(freq_rank[trg] if trg in freq_rank else -1)\n",
    "    if src == trg:\n",
    "        continue\n",
    "    if src not in most_freq_dict:\n",
    "        most_freq_dict[src] = freq_tot_rank[trg]\n",
    "    else:\n",
    "        most_freq_dict[src] = min(most_freq_dict[src], freq_tot_rank[trg])\n",
    "query_freq_list = sorted(list(most_freq_dict.values()))\n",
    "sns.lineplot(x=range(len(query_freq_list)), y=query_freq_list, palette=\"tab10\", linewidth=2.5)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "metadata": {},
     "execution_count": 7
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 394.375 248.518125\" width=\"394.375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-09-05T11:49:01.017720</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 394.375 248.518125 \nL 394.375 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 52.375 224.64 \nL 387.175 224.64 \nL 387.175 7.2 \nL 52.375 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"m8254d4d2ac\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"67.593182\" xlink:href=\"#m8254d4d2ac\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <g transform=\"translate(64.411932 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"139.360132\" xlink:href=\"#m8254d4d2ac\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 1000 -->\n      <g transform=\"translate(126.635132 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"211.127082\" xlink:href=\"#m8254d4d2ac\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 2000 -->\n      <g transform=\"translate(198.402082 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"282.894033\" xlink:href=\"#m8254d4d2ac\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 3000 -->\n      <g transform=\"translate(270.169033 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 40.578125 39.3125 \nQ 47.65625 37.796875 51.625 33 \nQ 55.609375 28.21875 55.609375 21.1875 \nQ 55.609375 10.40625 48.1875 4.484375 \nQ 40.765625 -1.421875 27.09375 -1.421875 \nQ 22.515625 -1.421875 17.65625 -0.515625 \nQ 12.796875 0.390625 7.625 2.203125 \nL 7.625 11.71875 \nQ 11.71875 9.328125 16.59375 8.109375 \nQ 21.484375 6.890625 26.8125 6.890625 \nQ 36.078125 6.890625 40.9375 10.546875 \nQ 45.796875 14.203125 45.796875 21.1875 \nQ 45.796875 27.640625 41.28125 31.265625 \nQ 36.765625 34.90625 28.71875 34.90625 \nL 20.21875 34.90625 \nL 20.21875 43.015625 \nL 29.109375 43.015625 \nQ 36.375 43.015625 40.234375 45.921875 \nQ 44.09375 48.828125 44.09375 54.296875 \nQ 44.09375 59.90625 40.109375 62.90625 \nQ 36.140625 65.921875 28.71875 65.921875 \nQ 24.65625 65.921875 20.015625 65.03125 \nQ 15.375 64.15625 9.8125 62.3125 \nL 9.8125 71.09375 \nQ 15.4375 72.65625 20.34375 73.4375 \nQ 25.25 74.21875 29.59375 74.21875 \nQ 40.828125 74.21875 47.359375 69.109375 \nQ 53.90625 64.015625 53.90625 55.328125 \nQ 53.90625 49.265625 50.4375 45.09375 \nQ 46.96875 40.921875 40.578125 39.3125 \nz\n\" id=\"DejaVuSans-51\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-51\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"354.660983\" xlink:href=\"#m8254d4d2ac\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 4000 -->\n      <g transform=\"translate(341.935983 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 37.796875 64.3125 \nL 12.890625 25.390625 \nL 37.796875 25.390625 \nz\nM 35.203125 72.90625 \nL 47.609375 72.90625 \nL 47.609375 25.390625 \nL 58.015625 25.390625 \nL 58.015625 17.1875 \nL 47.609375 17.1875 \nL 47.609375 0 \nL 37.796875 0 \nL 37.796875 17.1875 \nL 4.890625 17.1875 \nL 4.890625 26.703125 \nz\n\" id=\"DejaVuSans-52\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-52\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_6\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"m3c93ba22b1\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"214.761311\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 0 -->\n      <g transform=\"translate(39.0125 218.56053)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_7\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"190.025258\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 25000 -->\n      <g transform=\"translate(13.5625 193.824476)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"165.289204\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 50000 -->\n      <g transform=\"translate(13.5625 169.088423)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"140.553151\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 75000 -->\n      <g transform=\"translate(13.5625 144.35237)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 8.203125 72.90625 \nL 55.078125 72.90625 \nL 55.078125 68.703125 \nL 28.609375 0 \nL 18.3125 0 \nL 43.21875 64.59375 \nL 8.203125 64.59375 \nz\n\" id=\"DejaVuSans-55\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-55\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"115.817098\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 100000 -->\n      <g transform=\"translate(7.2 119.616317)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"318.115234\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"91.081045\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 125000 -->\n      <g transform=\"translate(7.2 94.880264)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"318.115234\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_7\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"66.344992\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 150000 -->\n      <g transform=\"translate(7.2 70.14421)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"318.115234\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_8\">\n     <g id=\"line2d_13\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"41.608938\"/>\n      </g>\n     </g>\n     <g id=\"text_13\">\n      <!-- 175000 -->\n      <g transform=\"translate(7.2 45.408157)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-55\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-53\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"318.115234\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_9\">\n     <g id=\"line2d_14\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.375\" xlink:href=\"#m3c93ba22b1\" y=\"16.872885\"/>\n      </g>\n     </g>\n     <g id=\"text_14\">\n      <!-- 200000 -->\n      <g transform=\"translate(7.2 20.672104)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"127.246094\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"190.869141\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"254.492188\" xlink:href=\"#DejaVuSans-48\"/>\n       <use x=\"318.115234\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"line2d_15\">\n    <path clip-path=\"url(#p3125b2c7ba)\" d=\"M 67.593182 214.756364 \nL 74.411042 214.645546 \nL 84.171347 214.401154 \nL 85.965521 214.33783 \nL 90.343305 214.227012 \nL 95.725826 214.038029 \nL 99.027106 213.927211 \nL 119.624221 212.968442 \nL 120.34189 212.904128 \nL 122.494899 212.807163 \nL 123.284335 212.735923 \nL 130.389263 212.257033 \nL 130.748098 212.211518 \nL 132.614039 212.077944 \nL 133.188174 212.034408 \nL 134.551746 211.927549 \nL 135.197649 211.867193 \nL 136.991823 211.707892 \nL 141.154306 211.37544 \nL 142.159043 211.292327 \nL 148.474535 210.787711 \nL 149.981641 210.68283 \nL 152.493484 210.369177 \nL 153.713522 210.261328 \nL 161.320819 209.524194 \nL 161.966722 209.472743 \nL 169.645785 208.729672 \nL 170.578756 208.672284 \nL 172.372929 208.491216 \nL 172.659997 208.436797 \nL 173.736501 208.328948 \nL 178.114285 207.91635 \nL 179.334323 207.741219 \nL 182.348535 207.430534 \nL 183.496807 207.321695 \nL 184.142709 207.254413 \nL 185.578048 207.086208 \nL 187.802824 206.726051 \nL 188.161658 206.633044 \nL 188.664027 206.529152 \nL 189.30993 206.456923 \nL 190.2429 206.355011 \nL 190.817036 206.212531 \nL 195.19482 205.472428 \nL 196.343091 205.325001 \nL 197.132527 205.178564 \nL 197.634896 205.041031 \nL 198.926701 204.799607 \nL 201.797379 204.356337 \nL 203.376252 204.030811 \nL 204.955125 203.716168 \nL 206.390464 203.616235 \nL 208.184638 203.210563 \nL 208.543472 203.10964 \nL 212.275354 202.348759 \nL 213.854227 202.08161 \nL 214.069527 201.991571 \nL 214.787197 201.801598 \nL 219.88265 200.722116 \nL 220.313252 200.559848 \nL 222.753328 199.957278 \nL 223.18393 199.835576 \nL 223.9016 199.659456 \nL 225.049871 199.313151 \nL 225.624006 198.967836 \nL 226.054608 198.885712 \nL 229.714723 198.020939 \nL 230.00179 197.929911 \nL 231.150062 197.648909 \nL 231.365362 197.466852 \nL 234.164274 196.738622 \nL 234.523108 196.651552 \nL 235.240778 196.474441 \nL 235.456079 196.412107 \nL 236.030214 196.320088 \nL 236.317282 196.203334 \nL 236.891418 196.076686 \nL 237.465553 195.969826 \nL 237.967922 195.83922 \nL 240.049163 195.322731 \nL 240.407998 195.179262 \nL 240.623299 195.074381 \nL 240.766833 194.931901 \nL 240.982134 194.84483 \nL 241.484502 194.656836 \nL 242.48924 194.29569 \nL 242.704541 194.183883 \nL 242.919841 194.084939 \nL 244.283414 193.591207 \nL 245.862286 193.221156 \nL 246.364655 192.902555 \nL 246.795257 192.807569 \nL 247.512926 192.408824 \nL 247.65646 192.269312 \nL 247.943528 192.109023 \nL 248.158829 192.011068 \nL 248.445897 191.768655 \nL 249.881236 191.382772 \nL 250.527138 191.235345 \nL 250.742439 191.118591 \nL 251.029507 191.066151 \nL 251.388342 190.832642 \nL 251.460109 190.81879 \nL 251.675409 190.605071 \nL 252.177778 190.469517 \nL 253.038981 190.111339 \nL 253.828418 189.761077 \nL 253.900185 189.73733 \nL 254.115486 189.386078 \nL 256.053193 188.710289 \nL 256.412028 188.605408 \nL 257.057931 188.38971 \nL 257.488532 188.041426 \nL 257.703833 187.898947 \nL 257.919134 187.725794 \nL 258.780338 187.208316 \nL 259.210939 187.068805 \nL 259.498007 186.824412 \nL 261.292181 186.205022 \nL 261.794549 186.0665 \nL 262.296918 185.676659 \nL 263.014588 185.486687 \nL 263.516956 185.282862 \nL 263.732257 185.181938 \nL 264.162859 185.010765 \nL 264.808761 184.761426 \nL 264.952295 184.565516 \nL 265.239363 184.387416 \nL 265.454664 184.161824 \nL 265.885266 183.67106 \nL 268.253575 182.681618 \nL 268.61241 182.50055 \nL 268.755944 182.21757 \nL 268.971244 182.121594 \nL 269.186545 181.96922 \nL 269.760681 181.819814 \nL 270.119516 181.466583 \nL 271.626622 180.987693 \nL 271.841922 180.813551 \nL 272.200757 180.547391 \nL 272.774893 180.416785 \nL 272.990194 180.287168 \nL 273.349028 180.19614 \nL 273.492562 180.038818 \nL 273.707863 179.987367 \nL 273.923164 179.812236 \nL 274.281999 179.693503 \nL 275.43027 179.004851 \nL 275.717338 178.695156 \nL 276.219706 178.52893 \nL 276.578541 178.353798 \nL 276.793842 178.326094 \nL 277.009143 178.124248 \nL 277.439745 177.9788 \nL 277.726812 177.863035 \nL 277.942113 177.666136 \nL 278.157414 177.547403 \nL 278.300948 177.313895 \nL 278.444482 177.236718 \nL 278.659783 177.062576 \nL 278.875084 176.923065 \nL 279.090384 176.830057 \nL 279.377452 176.23936 \nL 280.166889 175.611065 \nL 280.741024 175.431976 \nL 281.171626 175.174721 \nL 281.386927 175.058956 \nL 281.673995 174.80368 \nL 281.961062 174.455396 \nL 282.319897 174.355463 \nL 283.396401 173.991348 \nL 283.539935 173.816217 \nL 283.89877 173.696494 \nL 284.329372 173.391746 \nL 285.262342 172.42704 \nL 285.477643 172.352832 \nL 285.621177 172.218268 \nL 285.764711 171.890762 \nL 285.980012 171.774008 \nL 286.338846 171.602835 \nL 286.984749 170.83107 \nL 287.415351 170.438261 \nL 287.630652 170.329423 \nL 288.563622 169.635824 \nL 288.85069 169.379558 \nL 288.994224 169.285561 \nL 289.209524 168.970919 \nL 289.568359 168.940246 \nL 289.78366 168.757199 \nL 290.070728 168.64935 \nL 290.357796 168.408915 \nL 290.644863 168.297109 \nL 291.075465 168.035896 \nL 291.147232 168.013139 \nL 291.290766 167.740053 \nL 291.649601 167.634182 \nL 292.223736 167.269078 \nL 292.36727 166.930689 \nL 292.510804 166.843618 \nL 293.013173 166.583395 \nL 293.228474 166.16585 \nL 293.443775 165.889796 \nL 293.587308 165.555364 \nL 293.730842 165.543491 \nL 294.233211 164.727201 \nL 294.376745 164.619352 \nL 294.73558 164.254248 \nL 294.95088 163.98413 \nL 296.60152 162.721602 \nL 296.745054 162.54746 \nL 296.960355 162.462368 \nL 297.462724 161.786579 \nL 297.534491 161.779653 \nL 297.678025 161.57187 \nL 297.749792 161.535261 \nL 297.893325 161.189946 \nL 298.323927 161.016793 \nL 298.539228 160.449843 \nL 298.96983 160.052087 \nL 299.113364 159.996678 \nL 299.400431 159.242724 \nL 299.759266 159.109149 \nL 300.764003 158.07815 \nL 300.907537 157.676437 \nL 300.979304 157.676437 \nL 301.194605 157.232177 \nL 301.768741 156.960081 \nL 301.912275 156.474265 \nL 302.558177 156.156654 \nL 303.060546 155.965691 \nL 303.634681 154.81497 \nL 303.706448 154.807055 \nL 303.921749 154.529021 \nL 304.208817 154.17579 \nL 304.495885 154.062994 \nL 304.639419 153.80475 \nL 304.85472 153.230873 \nL 305.213554 153.108182 \nL 305.428855 152.434372 \nL 305.859457 152.304755 \nL 306.146525 151.991102 \nL 306.792427 151.688333 \nL 307.223029 151.455814 \nL 307.366563 151.230221 \nL 307.581864 150.883916 \nL 307.797165 150.705817 \nL 307.940698 150.166571 \nL 308.227766 150.051796 \nL 308.586601 149.723301 \nL 308.801902 149.421521 \nL 308.873669 149.411627 \nL 309.017203 148.938673 \nL 309.160737 148.859518 \nL 309.304271 148.747711 \nL 309.519571 148.292568 \nL 310.02194 148.105563 \nL 310.309008 147.665261 \nL 310.667843 147.569285 \nL 311.313745 146.494751 \nL 311.600813 146.202866 \nL 311.67258 146.121732 \nL 311.816114 145.554781 \nL 311.887881 145.553792 \nL 312.103182 145.307421 \nL 312.390249 145.11349 \nL 312.60555 144.891855 \nL 313.32322 144.185393 \nL 313.538521 143.684736 \nL 313.897355 143.547203 \nL 314.184423 142.964422 \nL 314.399724 142.737839 \nL 314.543258 142.70123 \nL 314.758559 142.34602 \nL 314.97386 142.304464 \nL 315.619762 141.278412 \nL 315.835063 140.992464 \nL 316.050364 140.745103 \nL 316.337432 140.379999 \nL 316.409199 140.285012 \nL 316.552733 139.839763 \nL 316.8398 139.492469 \nL 316.983334 138.822617 \nL 317.126868 138.615824 \nL 317.342169 138.121102 \nL 318.131605 137.102967 \nL 318.346906 136.984233 \nL 318.633974 136.798218 \nL 318.849275 136.682454 \nL 319.279877 136.01557 \nL 319.566944 135.725663 \nL 320.284614 134.766894 \nL 320.715216 133.698296 \nL 321.07405 133.396516 \nL 321.361118 132.939394 \nL 321.432885 132.878049 \nL 321.719953 132.306151 \nL 322.222322 131.946984 \nL 322.939991 130.817041 \nL 323.083525 130.750748 \nL 323.370593 130.221397 \nL 323.585894 129.964142 \nL 323.729428 129.783074 \nL 324.303563 129.446663 \nL 324.518864 129.273511 \nL 324.662398 129.241849 \nL 325.451834 126.836515 \nL 325.523601 126.829589 \nL 326.313038 125.370162 \nL 326.456572 125.295954 \nL 326.671873 124.883356 \nL 327.030707 124.544967 \nL 327.246008 123.72472 \nL 328.178978 121.866547 \nL 328.466046 121.501443 \nL 328.60958 121.429214 \nL 329.399017 120.410088 \nL 329.470784 120.323017 \nL 329.614317 120.026185 \nL 329.757851 119.933177 \nL 330.044919 118.823023 \nL 330.116686 118.766625 \nL 330.331987 118.20759 \nL 330.619055 117.926589 \nL 330.762589 117.708911 \nL 330.97789 117.333913 \nL 331.19319 117.254757 \nL 331.408491 116.940115 \nL 331.623792 116.52257 \nL 331.839093 116.253442 \nL 331.91086 116.198033 \nL 332.126161 115.704302 \nL 332.413229 115.383722 \nL 332.700296 115.054238 \nL 332.915597 114.555559 \nL 333.130898 114.202328 \nL 333.417966 113.565128 \nL 333.489733 113.560181 \nL 334.49447 111.861308 \nL 334.853305 111.703987 \nL 335.21214 111.020283 \nL 335.42744 110.7937 \nL 336.001576 109.947727 \nL 336.14511 109.466858 \nL 336.216877 109.466858 \nL 336.360411 109.175962 \nL 336.575712 108.759407 \nL 336.934546 108.067787 \nL 337.006313 108.060861 \nL 337.436915 107.31779 \nL 337.580449 107.275244 \nL 337.723983 107.027884 \nL 338.585186 106.387715 \nL 338.800487 105.493259 \nL 338.944021 105.270634 \nL 339.44639 104.832312 \nL 339.661691 103.850785 \nL 339.805224 103.790429 \nL 339.948758 103.333307 \nL 340.020525 103.276908 \nL 340.235826 102.267678 \nL 340.522894 102.035159 \nL 340.666428 101.205017 \nL 340.881729 100.831997 \nL 341.025263 100.495587 \nL 341.31233 100.172039 \nL 341.455864 100.024612 \nL 341.742932 99.395327 \nL 341.958233 99.292425 \nL 342.532369 98.576069 \nL 342.604135 98.575079 \nL 342.819436 97.761758 \nL 343.321805 97.212618 \nL 343.537106 96.631815 \nL 343.967708 96.318162 \nL 344.111241 96.188545 \nL 344.254775 96.089601 \nL 344.470076 95.422717 \nL 344.541843 95.344551 \nL 344.685377 94.93789 \nL 344.828911 94.908207 \nL 345.474814 93.142053 \nL 345.761881 92.824442 \nL 346.336017 91.191862 \nL 346.407784 91.167126 \nL 346.623085 90.875241 \nL 346.910153 90.794107 \nL 347.053686 90.37953 \nL 347.340754 89.837316 \nL 347.484288 89.237714 \nL 347.627822 89.141738 \nL 347.771356 88.993322 \nL 347.986657 88.064236 \nL 348.058424 88.050384 \nL 348.345492 87.193527 \nL 349.350229 84.253894 \nL 349.493763 84.123288 \nL 349.924364 82.731143 \nL 350.139665 82.368017 \nL 350.642034 80.581085 \nL 351.000869 80.426732 \nL 351.072636 80.091311 \nL 351.287936 78.075817 \nL 351.359703 78.069881 \nL 351.646771 77.395081 \nL 351.862072 77.392113 \nL 352.14914 76.578792 \nL 352.292674 76.402671 \nL 352.723275 75.78427 \nL 352.795042 75.78427 \nL 353.512712 73.429397 \nL 353.728013 73.143448 \nL 353.943314 73.064293 \nL 354.73275 71.032968 \nL 354.804517 71.032968 \nL 354.948051 70.819249 \nL 355.378653 70.473934 \nL 355.593954 69.798145 \nL 356.024555 69.2213 \nL 356.38339 66.66656 \nL 356.598691 66.504292 \nL 356.957526 66.372696 \nL 357.101059 66.262868 \nL 357.172826 66.200533 \nL 357.31636 64.938005 \nL 357.459894 64.824219 \nL 357.675195 64.232533 \nL 357.890496 63.946584 \nL 358.105797 62.83643 \nL 358.536398 62.125021 \nL 358.751699 61.068297 \nL 358.895233 60.838746 \nL 358.967 60.777401 \nL 359.182301 60.345015 \nL 359.469369 60.179778 \nL 359.899971 59.125032 \nL 360.115271 58.896471 \nL 360.330572 58.238492 \nL 360.904708 57.066993 \nL 361.191776 56.305122 \nL 361.407076 56.015216 \nL 361.478843 55.98949 \nL 362.052979 54.514232 \nL 362.26828 54.292597 \nL 362.483581 53.616808 \nL 362.770649 52.837128 \nL 362.914182 51.268862 \nL 363.129483 50.549537 \nL 363.273017 49.418605 \nL 363.344784 49.370122 \nL 363.488318 48.219401 \nL 363.631852 47.721712 \nL 364.277754 43.951937 \nL 364.349521 43.951937 \nL 364.780123 41.086513 \nL 364.85189 41.028136 \nL 365.067191 40.354326 \nL 365.138958 40.341463 \nL 365.354259 39.597403 \nL 365.713094 38.441734 \nL 365.78486 38.43085 \nL 366.000161 37.643254 \nL 366.143695 37.520564 \nL 366.358996 36.706253 \nL 366.717831 35.66536 \nL 366.933132 34.418662 \nL 367.148433 33.859628 \nL 367.220199 33.834892 \nL 367.579034 32.462535 \nL 367.650801 32.382391 \nL 367.866102 31.661087 \nL 368.296704 30.28972 \nL 368.440238 29.991898 \nL 368.583772 29.862281 \nL 368.655538 29.711886 \nL 368.870839 27.429243 \nL 369.157907 25.441454 \nL 369.80381 23.448718 \nL 369.875577 23.252808 \nL 370.090877 22.248524 \nL 370.593246 21.117592 \nL 370.808547 19.360343 \nL 370.952081 19.037785 \nL 371.167382 18.93983 \nL 371.310916 18.005796 \nL 371.382683 17.993923 \nL 371.885051 17.139045 \nL 371.956818 17.083636 \nL 371.956818 17.083636 \n\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:2.5;\"/>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 52.375 224.64 \nL 52.375 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 387.175 224.64 \nL 387.175 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 52.375 224.64 \nL 387.175 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 52.375 7.2 \nL 387.175 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p3125b2c7ba\">\n   <rect height=\"217.44\" width=\"334.8\" x=\"52.375\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "source": [
    "f = open(os.path.join(os.getcwd(), '../data/crosslingual/dictionaries/en-zh.0-5000.txt'))\n",
    "lowf = 0\n",
    "pre = -1\n",
    "for line in f:\n",
    "    src, trg = line.split()\n",
    "    src_ind = freq_tot_rank[src]\n",
    "    if src_ind == pre:\n",
    "        pass\n",
    "    elif src_ind <= 5000:\n",
    "        lowf += 1\n",
    "    pre = src_ind\n",
    "print(lowf)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "3458\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.9.5 64-bit ('base': conda)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  },
  "interpreter": {
   "hash": "89ed7adc654ab155dcc9ba65387c745930b163e7b2d9e526471843411ef9ebae"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}